package com.zhoux.collections.genericity;

import java.util.ArrayList;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/18 9:08
 *
 * 本类用于测试泛型的优点1
 */
public class Generic_Test {
    public static void main(String[] args) {
        /** 1.泛型是怎么来的？-------想要模拟数据的功能*/
        // 创建一个String类型的数组
        String[] s = new String[5];
        s[0] = "zhoux";
        s[1] = "zhouxq";
        /** 2.数组的好处：在编译时检查数据，如果不是定义的类型就报错*/
//        s[3]= 1 ;
        /** 泛型通常与集合一起使用*/
        // 没有泛型，就没有数据类型的约束
        ArrayList list = new ArrayList();
        list.add("苏黎世");
        list.add(1);
        list.add("ss");
        list.add(1.2);
        System.out.println(list); // 通过打印查看集合中的元素
        /** 3.引入泛型---通过泛型来约束集合中的元素类型
         *  泛型的好处：可以把报错的时机提前，在编译时就报错，而不是运行后才抛出异常
         *  向集合中添加元素时，会检查元素的类似，不是要求的类型就编译失败*/

        /** 4.<type>--type的值应该如何写？
         *  需要存放生么类型，就放什么类型
         *   但不能时基本数据类型，必须是引用类型
         *   注意：泛型需要写在前面，否则无法正常类型检查
         *   后面的泛型可以省略，也可以前后都写*/

        ArrayList<Integer> list1 = new ArrayList<Integer>();
        list1.add(2);
        list1.add(4);
        list1.add(6);
        System.out.println(list1);

    }
}
